When controlling a trajectory of an effector such as a robot, a target state needs to be defined. The target state is, for example, defined as an object that is to be handled by a manipulating arm of a robot. In general, the position of the object can be described by three parameters. In addition to the object position, it is necessary to describe a spatial orientation which is often described by Kardan-angles or Euler-angles.
To carry out the movement of an effector in a robot, the trajectory is usually generated by mapping increments from a control parameter space to configuration space.
The control parameter space or task space is the space of the command elements. The control parameter space is composed of the command elements. The command (also “target” or “task”) elements are the elements of a respective command vector. These elements define a useful description of what should be controlled, for example, the position of a hand or the tilting angle of a head. The configuration space is the space of controllable degrees of freedom. The configuration space can be composed of individual joints of a robot and/or more complex kinematics mechanisms to which controllable degrees of freedom can be assigned.
“Null space” represents the dimensional difference between the joint space and the task space. The null space contains the redundant degrees of freedom, in which movements can be carried out without affecting the task space motion. The null space is defined as the set of arguments of a linear operator such that the corresponding function value is zero. Redundant systems have a (local) null space that can be used to address a secondary objective, such as kinematic conditioning, without disturbing a primary task.
Conventionally, targets of robots were provided by operators and the robots merely tracked planned trajectories. The safety mechanism in conventional robots is an emergency stop mechanism that simply freezes motions, if any motions were being performed. Modern robots, in particular humanoid robots, are expected to work outside the typical environment such as factories. The modern robots need to interact with dynamic environment that is less predictable. The advantage of using the collision avoidance is not only safety. The collision avoidance does not necessarily stop the robot's target reaching motions and may expand the robot's working range.
The known collision avoidance mechanism may be divided into two categories. One category of collision avoidance mechanism is a planning (non real-time) method which generates trajectories taking obstacles into account.
James Kuffner et al., “Self-collision detection and prevention for humanoid robots,” In proceedings of the IEEE International Conference on Robotics and Automation, 2002, which is incorporated by reference herein in its entirety, proposes a collision avoidance on a humanoid robot. This document proposes a fast collision detection method and a real-time planning for gait generations taking leg interference into account.
James Kuffner et al., “Dynamically-stable motion planning for humanoid robots,” Autonomous Robots, volume 12, pages 105-118, 2002, which is incorporated by reference herein in its entirety, proposes a dynamics based collision free planning method using Rapidly exploring Random Trees (RRTs). However, these methods are difficult to apply to interactive motions because the computation time becomes longer as the degrees of freedom of robots (e.g., humanoid robots) increase.
Another category of the collision avoidance is reactive (real-time) collision avoidance. The reactive collision avoidance modifies trajectories that are quite simple such as line segments connecting current positions and target positions.
In order to use this method, the direction of avoidance and how to switch the priority between target reaching motions and collision avoidance motions depending on the magnitude of danger of collisions in real-time must be decided. For instance, if the distance between segments is large enough, target reaching motions should have higher priority than collision avoidance motions.
Null space optimization criteria may be used for collision avoidance (see, for example, Michael Gienger, Herbert Janssen, and Christian Goerick, “Task-oriented whole body motion for humanoid robots,” In proceedings of the IEEERAS International Conference on Humanoid Robots, 2005; and Michael Gienger, Herbert Janssen, and Christian Goerick, “Exploiting task intervals for whole body robot control,” In proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, 2006, which are incorporated by reference herein in their entirety).
A particular case of collision avoidance is occlusion avoidance. When a robot arm moves towards a target that is captured by its visual sensors (e.g., cameras), sometimes an arm segment blocks the target by its own movements. This sometimes causes oscillations. For example, if the robot loses the target, it retracts the arm. After the target reappears and the robot again reaches for the target.